(defpackage :experiment
  (:nicknames :exp)
  (:use :cl)
  (:shadow #:log #:random #:*random-state*)
  (:export :event
	   :click-event
           :click-event-source
           :click-event-x
           :click-event-y
	   :key-press-event
           :key-press-event-key
	   :timer-event
	   :handle-event
	   :state
	   :code
	   :sequence
           ;; actions
           :define-state-match
           :define-event-match
           :define-event-translation
           :define-event
           :define-action
           :execute-action
           ;;
           :timeout
           :keypress
           :raw-keypress
           :click
           :click-inside
           :advance
           ;; state
	   :state-init
	   :state-clean-up
           :state-end
	   :state-dispatch-event
           :state-unhandled-event
           :state-dump
           :state-list-actions
           :state-list-objects
           :state-translate-action
           :dump-screen
           :dispatch-event-fn
           :wire-button
	   :experiment
	   :experiment-id
           :experiment-disable-timers-p
           :reward
           :global-data
           :current-state
           :parent-state
	   :compile-experiment
           :run-experiment
           :input-action
           :submit-action
           :event-map
           :add-event-map
           :input-action-char
	   :next-state-action
           :state-onward
           :state-backward
           :crosshair
           :message
           :kp-message
           :click-message
           :nav-message
           :timer-message
           :block-start
           :kp-block-start
           :instructions
           :click-instructions
           :nback
           :kbd-nback
           :sync-nback
           :sound
           :event-name
           :start-timer
           :start-ms-timer
	   :start-interval
           :timeout-action
           :cancel-timer
           :cancel-state-timers
           :end
           :log
	   :simple-feedback
	   :triple-dropout
	   :*triple-dropout-remaining*
	   :*triple-dropout-block*
	   :*feedback-correct-p*
	   :randomize
	   :synchronize-pulse
           :dummy-synchronize-pulse
	   :fmri-crosshair
           :subsequence
           :subsequence-index
           :*subsequence-length*
           :*subsequence-nth*
           :subsequence-count
           :*experiment*
           :lg
           ;; audio
           :audio-record
           :speech-juice
           :speech-juice-calibration
           ;; reward
           :reward
           option
           option-name
           option-value
           option-initial-value
           option-values
           :get-option-value
           ;;
           stimulus-input-feedback
           show-answer
           do-feedback
           ;; actions
           :onward
           :add-click-message
           :next-state
           :match
           :submit
           :count-pulses
           ;; random
           #:randomize
           #:randomize-timer
           #:random
           ;;
           #:stimulus-response
           ))
